﻿using System;
using System.Web.UI.WebControls;
using BONSAI.BLL;
using BONSAI.Common;
using BONSAI.Common.DTO;

namespace BONSAI.Admin.UC
{
    public partial class AccountManager : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
               GetData();
        }
        void GetData()
        {
            var table = (new AccountBO()).GetAll();
            GridView1.DataSource = table;
            GridView1.DataBind();                 
        }

        protected void btadd_Click(object sender, EventArgs e)
        {
            #region Check value
            if (txtten.Text == "")
            {
                WebMBox.Show("Vui lòng nhập tên đăng nhập.");
                txtten.Focus();
                return;
            }
            if (txtpass.Text == "")
            {
                WebMBox.Show("Vui lòng nhập mật khẩu.");
                txtpass.Focus();
                return;
            }
            if (txtpass.Text.Trim() != txtrepass.Text.Trim())
            {
                WebMBox.Show("Nhập lại mật khẩu không trùng.");
                txtpass.Focus();
                return;
            }
            var table = (new AccountBO()).GetByID(txtten.Text);
            if (table != null)
            {
                WebMBox.Show("Tên đăng nhập đã tồn tại trong hệ thống. Vui lòng chọn tên đăng nhập khác.");
                txtten.Focus();
                return;
            }
            
            #endregion
            try
            {
                var accountDto = new AccountDTO
                {
                    UserName = txtten.Text,
                    PassWord = BONSAIUtils.MD5(txtpass.Text),
                    Role = Boolean.Parse(dropquyen.SelectedValue)
                };
                (new AccountBO()).UpdateByID(accountDto);
            }
            catch(Exception ex)
            {
                throw ex;
            }
            GetData();
        }
        protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            var dataKey = GridView1.DataKeys[e.RowIndex];
            if (dataKey != null)
            {
                string us = dataKey.Value.ToString();
                try
                {
                    if (Session["aaa"].ToString() == us)
                    {
                        WebMBox.Show("Không thể xóa tài khoản của chính mình.");
                        return;
                    }
                    (new AccountBO()).DeleteByID(us);
                }
                catch
                { }
            }
            GetData();
        }
    }
}